package org.zing.proxy.test01;

/**
 * 抽象主题 - 通过接口或抽象类声明真实对象和代理对象共同实现的业务方法（唱歌）
 * <p>
 * 代理对象（经纪人）和真实对象（歌星）要实现相同的接口 - 表示他们都能做相同的事情
 * 1）真实对象实现的是真正的核心业务
 * 2）代理对象根据实际需求，在调用真实对象核心业务方法之前或之后可以扩展一些额外的功能
 *
 * @Author zqx
 * @Date 2024-04-21
 */
public interface Performance {
    /**
     * 唱歌
     *
     * @param song 要唱的歌曲
     * @return 歌星唱完，返回一个话 - 谢谢
     */
    String sing(String song);
}
